package com.atguigu.g_test;

import java.util.Scanner;

/*
    重要 : 评委打分案例

    要求 : 求总分,求最高分,求最低分的逻辑 封装在方法内
 */
public class Test {
    public static void main(String[] args) {
        //创建数组存评委的分
        int[] scores = new int[6];

        Scanner sc = new Scanner(System.in);

        for (int i = 0; i < scores.length; i++) {
            System.out.println("请第 " + (i + 1) + " 号评委打分 : ");
            int score = sc.nextInt();
            //把分存到数组中
            scores[i] = score;
        }

        //现在才去定义方法,再调用方法
        //求总分
        int sum = getSum(scores);
        //求最高分
        int max = getMax(scores);
        //求最低分
        int min = getMin(scores);

        //平均分
        double avg = 1.0 * (sum - max - min) / (scores.length - 2);

        System.out.println("选手的最终得分是 : " + avg);
    }

    /*
        三个明确 :
            方法名 : 见名知意
            形参列表 : 方法内部需要什么 //提高代码的灵活性
            返回值类型 : 此方法需不需要返回结果 //看需求
                规律 : 求,获取..[有返回值] / 打印 , 添加 , 删除 [无返回值]
     */

    //求总分
    public static int getSum(int[] arr){
        int sum = 0;
        for (int i = 0; i < arr.length; i++) {
            sum += arr[i];
        }
        return sum;
    }

    //求最高分
    public static int getMax(int[] arr){
        int max = arr[0];
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] > max){
                max = arr[i];
            }
        }
        return max;
    }

    //求最低分
    public static int getMin(int[] arr){
        int min = arr[0];
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] < min){
                min = arr[i];
            }
        }
        return min;
    }
}
